<?php
/**
 * View_Declension
 *
 * Работает со склонениями
 * @author Егоров Александр
 * @version 1.0
 */
class Service_Declension {
	/**
   * Определяем склоенение
   *
   * @param array $number - число для которого ищем склонение
   */
	public static function getDeclension($number) {
		$number = $number%100;
		if (($number >10) && ($number < 20)) return 1;
		else{
			switch ($number%10) {
				case 1:
					return 2;
					break;
				case 2:
				case 3:
				case 4:
					return 3;
					break;
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 0:
					return 1;
					break;
				default: ;
			}
		}
	}
	/**
	 * Склоенение лет
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getYearsDeclension($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' лет ';
			case 2:
				return ' год ';
			case 3:
				return ' года ';
		}
	}
	/**
	 * Склоенение месяцев
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getMonthsDeclension($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' месяцев ';
			case 2:
				return ' месяц ';
			case 3:
				return ' месяца ';
		}
	}

	/**
	 * Склоенение дней
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getDaysDeclension($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' дней ';
			case 2:
				return ' день ';
			case 3:
				return ' дня ';
		}
	}
	/**
	 * Склоенение часов
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getHoursDeclension($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' часов ';
			case 2:
				return ' час ';
			case 3:
				return ' часа ';
		}
	}

	/**
	 * Склоенение минут
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getMinutesDeclension($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' минут ';
			case 2:
				return ' минута ';
			case 3:
				return ' минуты ';
		}
	}

/**
	 * Склоенение постов
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getPostsDeclension($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' постов ';
			case 2:
				return ' пост ';
			case 3:
				return ' поста ';
		}
	}
/**
	 * Склоенение фотографий
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getPhotosDeclension($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' фотографий ';
			case 2:
				return ' фотография ';
			case 3:
				return ' фотографии ';
		}
	}
/**
	 * Склоенение комментариев
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getCommentsDeclension($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' комментариев ';
			case 2:
				return ' комментарий ';
			case 3:
				return ' комментария ';
		}
	}

	/**
	 * Склоенение статей
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getArticlesDisclansion($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' статей';
			case 2:
				return ' статья';
			case 3:
				return ' статьи';
		}
	}
	/**
	 * Склоенение статей
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getEventsDisclansion($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' событий';
			case 2:
				return ' событие';
			case 3:
				return ' события';
		}
	}
	/**
	 * Склоенение элементов
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getElementsDisclansion($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' элементов';
			case 2:
				return ' элемент';
			case 3:
				return ' элемента';
		}
	}
	/**
	 * Склоенение объектов
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getObjectsDisclansion($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' объектов';
			case 2:
				return ' объект';
			case 3:
				return ' объекта';
		}
	}
	/**
	 * Склоенение объектов
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getServicesDisclansion($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' услуг';
			case 2:
				return ' услуга';
			case 3:
				return ' услуги';
		}
	}

	/**
	 * Склоенение объектов
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getOrdersDisclansion($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' заказов';
			case 2:
				return ' заказ';
			case 3:
				return ' заказа';
		}
	}
	
	/**
	 * Склоенение объектов
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getRublesDisclansion($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' рублей';
			case 2:
				return ' рубль';
			case 3:
				return ' рубля';
		}
	}	
	/**
	 * Склоенение объектов
	 *
	 * @param $number - число
	 * @return
	 */
	public static function getPeopleDisclansion($number) {
		switch (self::getDeclension($number)) {
			case 1:
				return ' человек';
			case 2:
				return ' человека';
			case 3:
				return ' человека';
		}
	}

}
?>